package com.tutorial.demo4lambda;

import java.util.Arrays;
import java.util.List;

/**
 * @author xiaoxiaokui
 * @description: Lambda之前用法
 * @date 2019/10/29
 **/
public class LambdaDemo01 {

    public static void main(String[] args) {
        List<String> names = Arrays.asList("Peter", "anna", "mike", "xenia");

        // Lambda 之前的写法
//        Collections.sort(names, new Comparator<String>() {
//            @Override
//            public int compare(String o1, String o2) {
//                return o2.compareTo(o1);
//            }
//        });

        // Lambda 表达式写法
//        Collections.sort(names, (String a, String b) -> {
//            return b.compareTo(a);
//        });

        // 正如你看到的，上面这段代码变得简短很多而且易于阅读。
        // 但是我们还可以再精炼一点：
//        Collections.sort(names, (String a, String b) -> b.compareTo(a));

        // 对于只包含一行方法的代码块，我们可以省略大括号，
        // 直接 return 关键代码即可。追求极致，我们还可以让它再短点：
        names.sort((a, b) -> b.compareTo(a));
        System.out.println(names);
    }
}
